<?php


namespace app\common\validate\virtual;


use yiqiniu\extend\validate\YqnValidate;

/**
 * 虚码活动特殊规则
 * Class VirtualPromoSpecial
 * @package app\common\validate\virtual
 */
class VirtualPromoSpecialValid extends YqnValidate
{

    /**
     *  字段：'id'，    类型：'bigint',    是否为空：1,    说明：序号
     *  字段：'vp_id'，    类型：'bigint',    是否为空：1,    说明：虚码活动ID
     *  字段：'type'，    类型：'smallint',    是否为空：1,    说明：限制方式 0无效,1:标签,2:门店,3:导购
     *  字段：'limit_way'，    类型：'jsonb',    是否为空：,    说明：限制内容:["xx1","xx2",....]
     *  字段：'small_ticket'，    类型：'smallint',    是否为空：1,    说明：是否需要小票, 1:需要 0:不需要
     *  字段：'op_user'，    类型：'integer',    是否为空：1,    说明：操作人
     *  字段：'create_at'，    类型：'timestamp(0) without time zone',    是否为空：,    说明：创建时间
     *  字段：'update_at'，    类型：'timestamp(0) without time zone',    是否为空：,    说明：更新时间
     */

    /**
     *  验证规则
     */
    protected $rule = [
        'id' => 'require|number',
        'vp_id' => 'require|number',
        'type' => 'require|number',
        'limit_way' => 'require',
        'red_packet' => 'require',
        'point' => 'require',
        'small_ticket' => 'require|number',
        'op_user' => 'require|number',
        'create_at' => 'date',
        'update_at' => 'date',


    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require' => '序号不能为空',
        'id.number' => '序号只能为数字类型',
        'vp_id.require' => '虚码活动ID不能为空',
        'vp_id.number' => '虚码活动ID只能为数字类型',
        'type.require' => '限制方式不能为空',
        'type.number' => '限制方式只能为数字类型',
        'limit_way.require' => '限制内容不能为空',
        'red_packet.require' => '红包金额不能为空',
        'point.require' => '积分不能为空',
        'small_ticket.require' => '是否需要小票,不能为空',
        'small_ticket.number' => '是否需要小票,只能为数字类型',
        'op_user.require' => '操作人不能为空',
        'op_user.number' => '操作人只能为数字类型',
        'create_at.date' => '创建时间只能为日期类型',
        'update_at.date' => '更新时间只能为日期类型',


    ];

    //验证场景
    protected $scene = [
        'add' => ['type', 'vp_id', 'limit_way', 'red_packet', 'point', 'op_user', 'small_ticket'],
        'edit' => ['id', 'vp_id'],
    ];
}
